Termination w.r.t. Q of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.


QTRS
  ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.

Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

QUOT(s(X), s(Y)) → QUOT(minus(X, Y), s(Y))
ACTIVATE(n__from(X)) → ACTIVATE(X)
SEL(s(N), cons(X, XS)) → ACTIVATE(XS)
ACTIVATE(n__s(X)) → S(activate(X))
ZWQUOT(cons(X, XS), cons(Y, YS)) → QUOT(X, Y)
ACTIVATE(n__s(X)) → ACTIVATE(X)
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X2)
QUOT(s(X), s(Y)) → MINUS(X, Y)
QUOT(s(X), s(Y)) → S(quot(minus(X, Y), s(Y)))
MINUS(s(X), s(Y)) → MINUS(X, Y)
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(activate(X1), activate(X2))
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(XS)
ACTIVATE(n__from(X)) → FROM(activate(X))
SEL(s(N), cons(X, XS)) → SEL(N, activate(XS))
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X1)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(YS)

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ DependencyPairsProof
QDP
      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

QUOT(s(X), s(Y)) → QUOT(minus(X, Y), s(Y))
ACTIVATE(n__from(X)) → ACTIVATE(X)
SEL(s(N), cons(X, XS)) → ACTIVATE(XS)
ACTIVATE(n__s(X)) → S(activate(X))
ZWQUOT(cons(X, XS), cons(Y, YS)) → QUOT(X, Y)
ACTIVATE(n__s(X)) → ACTIVATE(X)
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X2)
QUOT(s(X), s(Y)) → MINUS(X, Y)
QUOT(s(X), s(Y)) → S(quot(minus(X, Y), s(Y)))
MINUS(s(X), s(Y)) → MINUS(X, Y)
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(activate(X1), activate(X2))
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(XS)
ACTIVATE(n__from(X)) → FROM(activate(X))
SEL(s(N), cons(X, XS)) → SEL(N, activate(XS))
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X1)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(YS)

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 4 SCCs with 6 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
QDP
            ↳ UsableRulesProof
          ↳ QDP
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

MINUS(s(X), s(Y)) → MINUS(X, Y)

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
            ↳ UsableRulesProof
QDP
                ↳ QDPSizeChangeProof
          ↳ QDP
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

MINUS(s(X), s(Y)) → MINUS(X, Y)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
QDP
            ↳ QDPOrderProof
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

QUOT(s(X), s(Y)) → QUOT(minus(X, Y), s(Y))

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


QUOT(s(X), s(Y)) → QUOT(minus(X, Y), s(Y))
The remaining pairs can at least be oriented weakly.
none
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(QUOT(x1, x2)) = x1   
POL(minus(x1, x2)) = 0   
POL(n__s(x1)) = 0   
POL(s(x1)) = 1 + x1   

The following usable rules [17] were oriented:

minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
            ↳ QDPOrderProof
QDP
                ↳ PisEmptyProof
          ↳ QDP
          ↳ QDP

Q DP problem:
P is empty.
The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
QDP
            ↳ QDPOrderProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

ACTIVATE(n__from(X)) → ACTIVATE(X)
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(activate(X1), activate(X2))
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(XS)
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X1)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(YS)
ACTIVATE(n__s(X)) → ACTIVATE(X)
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X2)

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(XS)
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X1)
ZWQUOT(cons(X, XS), cons(Y, YS)) → ACTIVATE(YS)
ACTIVATE(n__zWquot(X1, X2)) → ACTIVATE(X2)
The remaining pairs can at least be oriented weakly.

ACTIVATE(n__from(X)) → ACTIVATE(X)
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(activate(X1), activate(X2))
ACTIVATE(n__s(X)) → ACTIVATE(X)
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(ACTIVATE(x1)) = x1   
POL(ZWQUOT(x1, x2)) = 1 + x1 + x2   
POL(activate(x1)) = x1   
POL(cons(x1, x2)) = x2   
POL(from(x1)) = x1   
POL(minus(x1, x2)) = 0   
POL(n__from(x1)) = x1   
POL(n__s(x1)) = x1   
POL(n__zWquot(x1, x2)) = 1 + x1 + x2   
POL(nil) = 0   
POL(quot(x1, x2)) = x2   
POL(s(x1)) = x1   
POL(zWquot(x1, x2)) = 1 + x1 + x2   

The following usable rules [17] were oriented:

from(X) → cons(X, n__from(n__s(X)))
zWquot(nil, XS) → nil
zWquot(XS, nil) → nil
zWquot(X1, X2) → n__zWquot(X1, X2)
s(X) → n__s(X)
from(X) → n__from(X)
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
activate(X) → X
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(n__s(X)) → s(activate(X))
activate(n__from(X)) → from(activate(X))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ QDPOrderProof
QDP
                ↳ DependencyGraphProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

ACTIVATE(n__from(X)) → ACTIVATE(X)
ACTIVATE(n__zWquot(X1, X2)) → ZWQUOT(activate(X1), activate(X2))
ACTIVATE(n__s(X)) → ACTIVATE(X)

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ QDPOrderProof
              ↳ QDP
                ↳ DependencyGraphProof
QDP
                    ↳ UsableRulesProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

ACTIVATE(n__from(X)) → ACTIVATE(X)
ACTIVATE(n__s(X)) → ACTIVATE(X)

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ QDPOrderProof
              ↳ QDP
                ↳ DependencyGraphProof
                  ↳ QDP
                    ↳ UsableRulesProof
QDP
                        ↳ QDPSizeChangeProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

ACTIVATE(n__from(X)) → ACTIVATE(X)
ACTIVATE(n__s(X)) → ACTIVATE(X)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
QDP
            ↳ QDPSizeChangeProof

Q DP problem:
The TRS P consists of the following rules:

SEL(s(N), cons(X, XS)) → SEL(N, activate(XS))

The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
minus(X, 0) → 0
minus(s(X), s(Y)) → minus(X, Y)
quot(0, s(Y)) → 0
quot(s(X), s(Y)) → s(quot(minus(X, Y), s(Y)))
zWquot(XS, nil) → nil
zWquot(nil, XS) → nil
zWquot(cons(X, XS), cons(Y, YS)) → cons(quot(X, Y), n__zWquot(activate(XS), activate(YS)))
from(X) → n__from(X)
s(X) → n__s(X)
zWquot(X1, X2) → n__zWquot(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__zWquot(X1, X2)) → zWquot(activate(X1), activate(X2))
activate(X) → X

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs: